using System;
// This class contains a list of definitions of bytes that can be sent or
// received from the device.
class CCommands
{
    public const byte SSP_CMD_RESET = 0x01;
    public const byte SSP_CMD_SET_CHANNEL_INHIBITS = 0x02;
    public const byte SSP_CMD_DISPLAY_ON = 0x03;
    public const byte SSP_CMD_DISPLAY_OFF = 0x04;
    public const byte SSP_CMD_SETUP_REQUEST = 0x05;
    public const byte SSP_CMD_HOST_PROTOCOL_VERSION = 0x06;
    public const byte SSP_CMD_POLL = 0x07;
    public const byte SSP_CMD_REJECT_BANKNOTE = 0x08;
    public const byte SSP_CMD_DISABLE = 0x09;
    public const byte SSP_CMD_ENABLE = 0x0A;
    public const byte SSP_CMD_GET_SERIAL_NUMBER = 0x0C;
    public const byte SSP_CMD_UNIT_DATA = 0x0D;
    public const byte SSP_CMD_CHANNEL_VALUE_REQUEST = 0x0E;
    public const byte SSP_CMD_CHANNEL_SECURITY_DATA = 0x0F;
    public const byte SSP_CMD_CHANNEL_RE_TEACH_DATA = 0x10;
    public const byte SSP_CMD_SYNC = 0x11;
    public const byte SSP_CMD_LAST_REJECT_CODE = 0x17;
    public const byte SSP_CMD_HOLD = 0x18;
    public const byte SSP_CMD_GET_FIRMWARE_VERSION = 0x20;
    public const byte SSP_CMD_GET_DATASET_VERSION = 0x21;
    public const byte SSP_CMD_GET_ALL_LEVELS = 0x22;
    public const byte SSP_CMD_GET_BAR_CODE_READER_CONFIGURATION = 0x23;
    public const byte SSP_CMD_SET_BAR_CODE_CONFIGURATION = 0x24;
    public const byte SSP_CMD_GET_BAR_CODE_INHIBIT_STATUS = 0x25;
    public const byte SSP_CMD_SET_BAR_CODE_INHIBIT_STATUS = 0x26;
    public const byte SSP_CMD_GET_BAR_CODE_DATA = 0x27;
    public const byte SSP_CMD_SET_REFILL_MODE = 0x30;
    public const byte SSP_CMD_PAYOUT_AMOUNT = 0x33;
    public const byte SSP_CMD_SET_DENOMINATION_LEVEL = 0x34;
    public const byte SSP_CMD_GET_DENOMINATION_LEVEL = 0x35;
    public const byte SSP_CMD_COMMUNICATION_PASS_THROUGH = 0x37;
    public const byte SSP_CMD_HALT_PAYOUT = 0x38;
    public const byte SSP_CMD_SET_DENOMINATION_ROUTE = 0x3B;
    public const byte SSP_CMD_GET_DENOMINATION_ROUTE = 0x3C;
    public const byte SSP_CMD_FLOAT_AMOUNT = 0x3D;
    public const byte SSP_CMD_GET_MINIMUM_PAYOUT = 0x3E;
    public const byte SSP_CMD_EMPTY_ALL = 0x3F;
    public const byte SSP_CMD_SET_COIN_MECH_INHIBITS = 0x40;
    public const byte SSP_CMD_GET_NOTE_POSITIONS = 0x41;
    public const byte SSP_CMD_PAYOUT_NOTE = 0x42;
    public const byte SSP_CMD_STACK_NOTE = 0x43;
    public const byte SSP_CMD_FLOAT_BY_DENOMINATION = 0x44;
    public const byte SSP_CMD_SET_VALUE_REPORTING_TYPE = 0x45;
    public const byte SSP_CMD_PAYOUT_BY_DENOMINATION = 0x46;
    public const byte SSP_CMD_SET_COIN_MECH_GLOBAL_INHIBIT = 0x49;
    public const byte SSP_CMD_SET_GENERATOR = 0x4A;
    public const byte SSP_CMD_SET_MODULUS = 0x4B;
    public const byte SSP_CMD_REQUEST_KEY_EXCHANGE = 0x4C;
    public const byte SSP_CMD_SET_BAUD_RATE = 0x4D;
    public const byte SSP_CMD_GET_BUILD_REVISION = 0x4F;
    public const byte SSP_CMD_SET_HOPPER_OPTIONS = 0x50;
    public const byte SSP_CMD_GET_HOPPER_OPTIONS = 0x51;
    public const byte SSP_CMD_SMART_EMPTY = 0x52;
    public const byte SSP_CMD_CASHBOX_PAYOUT_OPERATION_DATA = 0x53;
    public const byte SSP_CMD_CONFIGURE_BEZEL = 0x54;
    public const byte SSP_CMD_POLL_WITH_ACK = 0x56;
    public const byte SSP_CMD_EVENT_ACK = 0x57;
    public const byte SSP_CMD_GET_COUNTERS = 0x58;
    public const byte SSP_CMD_RESET_COUNTERS = 0x59;
    public const byte SSP_CMD_COIN_MECH_OPTIONS = 0x5A;
    public const byte SSP_CMD_DISABLE_PAYOUT_DEVICE = 0x5B;
    public const byte SSP_CMD_ENABLE_PAYOUT_DEVICE = 0x5C;
    public const byte SSP_CMD_SET_FIXED_ENCRYPTION_KEY = 0x60;
    public const byte SSP_CMD_RESET_FIXED_ENCRYPTION_KEY = 0x61;
    public const byte SSP_CMD_REQUEST_TEBS_BARCODE = 0x65;
    public const byte SSP_CMD_REQUEST_TEBS_LOG = 0x66;
    public const byte SSP_CMD_TEBS_UNLOCK_ENABLE = 0x67;
    public const byte SSP_CMD_TEBS_UNLOCK_DISABLE = 0x68;

    public const byte SSP_POLL_TEBS_CASHBOX_OUT_OF_SERVICE = 0x90;
    public const byte SSP_POLL_TEBS_CASHBOX_TAMPER = 0x91;
    public const byte SSP_POLL_TEBS_CASHBOX_IN_SERVICE = 0x92;
    public const byte SSP_POLL_TEBS_CASHBOX_UNLOCK_ENABLED = 0x93;
    public const byte SSP_POLL_JAM_RECOVERY = 0xB0;
    public const byte SSP_POLL_ERROR_DURING_PAYOUT = 0xB1;
    public const byte SSP_POLL_SMART_EMPTYING = 0xB3;
    public const byte SSP_POLL_SMART_EMPTIED = 0xB4;
    public const byte SSP_POLL_CHANNEL_DISABLE = 0xB5;
    public const byte SSP_POLL_INITIALISING = 0xB6;
    public const byte SSP_POLL_COIN_MECH_ERROR = 0xB7;
    public const byte SSP_POLL_COIN_FEEDER_DISABLED = 0xBD;
    public const byte SSP_POLL_COIN_FEEDER_ENABLED = 0xBE;
    public const byte SSP_POLL_VALUE_ADDED = 0xBF;
    public const byte SSP_POLL_PAYIN_ACTIVE = 0xC1;
    public const byte SSP_POLL_EMPTYING = 0xC2;
    public const byte SSP_POLL_EMPTIED = 0xC3;
    public const byte SSP_POLL_COIN_MECH_JAMMED = 0xC4;
    public const byte SSP_POLL_COIN_MECH_RETURN_PRESSED = 0xC5;
    public const byte SSP_POLL_PAYOUT_OUT_OF_SERVICE = 0xC6;
    public const byte SSP_POLL_NOTE_FLOAT_REMOVED = 0xC7;
    public const byte SSP_POLL_NOTE_FLOAT_ATTACHED = 0xC8;
    public const byte SSP_POLL_NOTE_TRANSFERED_TO_STACKER = 0xC9;
    public const byte SSP_POLL_NOTE_PAID_INTO_STACKER_AT_POWER_UP = 0xCA;
    public const byte SSP_POLL_NOTE_PAID_INTO_STORE_AT_POWER_UP = 0xCB;
    public const byte SSP_POLL_NOTE_STACKING = 0xCC;
    public const byte SSP_POLL_NOTE_DISPENSED_AT_POWER_UP = 0xCD;
    public const byte SSP_POLL_NOTE_HELD_IN_BEZEL = 0xCE;
    public const byte SSP_POLL_BAR_CODE_TICKET_ACKNOWLEDGE = 0xD1;
    public const byte SSP_POLL_DISPENSED = 0xD2;
    public const byte SSP_POLL_JAMMED = 0xD5;
    public const byte SSP_POLL_HALTED = 0xD6;
    public const byte SSP_POLL_FLOATING = 0xD7;
    public const byte SSP_POLL_FLOATED = 0xD8;
    public const byte SSP_POLL_TIME_OUT = 0xD9;
    public const byte SSP_POLL_DISPENSING = 0xDA;
    public const byte SSP_POLL_NOTE_STORED_IN_PAYOUT = 0xDB;
    public const byte SSP_POLL_INCOMPLETE_PAYOUT = 0xDC;
    public const byte SSP_POLL_INCOMPLETE_FLOAT = 0xDD;
    public const byte SSP_POLL_CASHBOX_PAID = 0xDE;
    public const byte SSP_POLL_COIN_CREDIT = 0xDF;
    public const byte SSP_POLL_NOTE_PATH_OPEN = 0xE0;
    public const byte SSP_POLL_NOTE_CLEARED_FROM_FRONT = 0xE1;
    public const byte SSP_POLL_NOTE_CLEARED_TO_CASHBOX = 0xE2;
    public const byte SSP_POLL_CASHBOX_REMOVED = 0xE3;
    public const byte SSP_POLL_CASHBOX_REPLACED = 0xE4;
    public const byte SSP_POLL_BAR_CODE_TICKET_VALIDATED = 0xE5;
    public const byte SSP_POLL_FRAUD_ATTEMPT = 0xE6;
    public const byte SSP_POLL_STACKER_FULL = 0xE7;
    public const byte SSP_POLL_DISABLED = 0xE8;
    public const byte SSP_POLL_UNSAFE_NOTE_JAM = 0xE9;
    public const byte SSP_POLL_SAFE_NOTE_JAM = 0xEA;
    public const byte SSP_POLL_NOTE_STACKED = 0xEB;
    public const byte SSP_POLL_NOTE_REJECTED = 0xEC;
    public const byte SSP_POLL_NOTE_REJECTING = 0xED;
    public const byte SSP_POLL_CREDIT_NOTE = 0xEE;
    public const byte SSP_POLL_READ_NOTE = 0xEF;
    public const byte SSP_POLL_SLAVE_RESET = 0xF1;

    public const byte SSP_RESPONSE_OK = 0xF0;
    public const byte SSP_RESPONSE_COMMAND_NOT_KNOWN = 0xF2;
    public const byte SSP_RESPONSE_WRONG_NO_PARAMETERS = 0xF3;
    public const byte SSP_RESPONSE_PARAMETER_OUT_OF_RANGE = 0xF4;
    public const byte SSP_RESPONSE_COMMAND_CANNOT_BE_PROCESSED = 0xF5;
    public const byte SSP_RESPONSE_SOFTWARE_ERROR = 0xF6;
    public const byte SSP_RESPONSE_FAIL = 0xF8;
    public const byte SSP_RESPONSE_KEY_NOT_SET = 0xFA;
}
